﻿#region Disclaimer/Info
///////////////////////////////////////////////////////////////////////////////////////////////////
// MetaCollection
// 
// MetaCollection is a system to provide a standard structure, permissions and metadata service
// for content organization.
//
// This project is hosted at Google Code at http://code.google.com/p/metacollection/
//
// This project is licensed under the BSD license.  See the License.txt file for more information.
///////////////////////////////////////////////////////////////////////////////////////////////////
#endregion

namespace MetaCollection.Framework.Index
{
	/// <summary>
	/// The states supported by Repository indexes
	/// </summary>
	public enum RepositoryIndexStatus
	{
		/// <summary>
		/// The initial status is the state a repository is in when first created
		/// but before it is initialized.  Once initialized it will transition to
		/// the ready state.
		/// </summary>
		Initial,
		/// <summary>
		/// During this state the repository index is being updated or built.
		/// </summary>
		Building,
		/// <summary>
		/// This is a transition state that occurs when an indexing job is canceled.
		/// </summary>
		Cancel,
		/// <summary>
		/// This is a transition state that occurs when an indexing job is suspended.
		/// From this state the repository index will transition to Ready.
		/// </summary>
		Suspended,
		/// <summary>
		/// This is the primary active state where the repository index is ready
		/// for queries and is not being updated or built.
		/// </summary>
		Ready,
		/// <summary>
		/// A finalized state of the repository index that occurs when it has 
		/// been disposed.  The repository index can not transition to any
		/// of the other active states once it has been disposed.
		/// </summary>
		Disposed
	}
}
